package 字符串;

/**
 14. 最长公共前缀

 思路： 采用纵向扫描法，对每一列进行对比遍历
     遍历数组，比较每一位上的字符是否相同，如果不同，则返回

 实际上还能采用的方法有分治法，二分查找法
 */
public class L_14 {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null || strs.length == 0){
            return "";
        }
        // 以第一个字符串为基准
        for (int i = 0; i < strs[0].length(); i++) {
            char current = strs[0].charAt(i);
            for (int j = 1; j < strs.length; j++) {
                // 如果已经遍历到某个字符串的长度，或者当前字符与基准字符不同，则返回
                if(i == strs[j].length() || strs[j].charAt(i) != current){
                    return strs[0].substring(0,i);
                }
            }
        }
        return strs[0];
    }
}
